package cn.edu.guet.service.editor;

import cn.edu.guet.bean.editor.Badge;
import cn.edu.guet.bean.editor.EditorUser;
import cn.edu.guet.bean.editor.Option;
import cn.edu.guet.bean.editor.Post;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * create by hzg 2021/07/07
 * 帖子的各个业务接口类
 */
public interface PostBll {
    /**
     * 上传图片
     */
    Map uploadImg(MultipartFile file);
    /**
     * 上传帖子
     */
    String publishPost(String tid, String title, String content, String time, String pstatus, String userid);
    /**
     * 通过id查询帖子
     */
    Post selectPostById(String pid);
    /**
     * 通过id查询用户
     */
    EditorUser selectUserById(String userid);
    /**
     * 通过id点赞
     */
    void giveupPost(String pid, String userid,String gdate);
    /**
     * 通过id取消点赞
     */
    void deleteGiveup(String pid, String userid);
    /**
     * 取消此点赞对应的积分
     */
    void updateGiveupPoint(String useredid,String userid,String pid);
    /**
     * 通过id查询点赞数量
     */
    int selectGiveupCon(String pid);
    /**
     * 通过id收藏
     */
    void collectPost(String userid, String pid,String cdate);
    /**
     * 通过id删除收藏
     */
    void deleteCollection(String userid, String pid);
    /**
     * 取消此收藏对应的积分
     */
    void updateCollectPoint(String useredid,String userid,String pid);
    /**
     * 通过id查询收藏数量
     */
    int selectCollectCon(String pid);
    /**
     * 通过id修改帖子
     */
    void updatePost(String pid,String tid,String ptitle,String pcontent,String ptime,String pstatus);
    /**
     * 通过id删除帖子
     */
    void deletePost(String pid);
    /**
     * 查询当前帖子是否已经点赞
     */
    String selectGiveupOrNot(String pid,String userid);
    /**
     * 查询当前帖子是否已经收藏
     */
    String selectCollectOrNot(String pid,String userid);
    /**
     * 上传父评论
     */
    void insertfatherDiscuss(int pid,int userid,String comcontent,String comtime,int comup,int fatherid,int useredid);
    /**
     * 查询帖子类型
     */
    List<Option> selectSelect();
    /**
     * 通过帖子id查询用户id
     */
    String selectUseridByPid(String pid);
    /**
     * 发贴成功后同时加给用户表中的总积分，用户每日的积分上限表中加入或更新记录
     */
    void insertGradeByPost(String userid,int grade,String date);
    /**
     * 查询用户已经商城买到的徽章
     */
    List<Badge> selectBadgeByUser(String userid);
    /**
     * 通过pid查询pstatus和ptime
     */
    Post selectPostSDByPid(String pid);
    /**
     * 查询当前用户的身份
     */
    String selectUserRole(String userid);
    /**
     * 查询用户当天的积分信息
     */
    String selectPointByDay(String userid,String date);
}
